home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 3 / ACE CD 3.iso / files / utils / aplay200.lha / APlayer / Files / Developer.lha / Include3.0 / Own / AccessiblePlayer.i next >
Text File  |  1995-12-23  |  15KB  |  590 lines

  1. ; AccessiblePlayer Include File
  2. ;
  3.  
  4.     IFND    APlayer_i
  5. APlayer_i    =    1
  6.  
  7.     IFND    EXEC_TYPES_I
  8.     INCLUDE    "Exec/Types.i"
  9.     ENDC
  10.  
  11.     IFND    UTILITY_TAGITEM_I
  12.     INCLUDE    "Utility/Tagitem.i"
  13.     ENDC
  14.  
  15. apVersion    =    6        ;Current Version Of APlayer
  16.  
  17. ;******************************************************************************
  18. ;* Library Offsets
  19. ;******************************************************************************
  20.  
  21. apGetTags    =    -30
  22.  
  23. ;******************************************************************************
  24. ;* Message Numbers
  25. ;******************************************************************************
  26.  
  27. MSG_NextMod    =    "NM"        ;Load Next Module
  28. MSG_NextPos    =    "NP"        ;Update Position
  29. MSG_CallBack    =    "CB"        ;Call Your CallBack Routine
  30.  
  31. ; Messages From Version 3 (Released as 1.21)
  32.  
  33. MSG_UpdateAbout    =    "UA"        ;Update About Window
  34.  
  35. ; Messages From Version 6 (Released as 2.00)
  36.  
  37. MSG_UpdateTempo    =    "UT"        ;Update Tempo In About Window
  38.  
  39. ;******************************************************************************
  40. ;* Tags
  41. ;******************************************************************************
  42.  
  43. APT_TagBase        =    $80000000+"AP"
  44.  
  45.     ENUM    APT_TagBase
  46.  
  47.     EITEM    APT_RequestVersion
  48.     EITEM    APT_EarlyCheck
  49.     EITEM    APT_Check
  50.     EITEM    APT_LoadModule
  51.     EITEM    APT_FreeModule
  52.     EITEM    APT_GetError
  53.     EITEM    APT_ExtLoad
  54.     EITEM    APT_ExtFree
  55.  
  56.     EITEM    APT_InitPlayer
  57.     EITEM    APT_EndPlayer
  58.     EITEM    APT_InitSound
  59.     EITEM    APT_EndSound
  60.  
  61.     EITEM    APT_Interrupt
  62.     EITEM    APT_StartIRQ
  63.     EITEM    APT_StopIRQ
  64.  
  65.     EITEM    APT_Config        ;OBSOLETE
  66.  
  67.     EITEM    APT_PlayerName
  68.     EITEM    APT_Description
  69.  
  70.     EITEM    APT_ModuleName
  71.     EITEM    APT_Author
  72.     EITEM    APT_SubSong
  73.  
  74.     EITEM    APT_CIA            ;OBSOLETE
  75.     EITEM    APT_Pause
  76.     EITEM    APT_Volume
  77.     EITEM    APT_VolumeFunc
  78.  
  79.     EITEM    APT_FastMem        ;OBSOLETE
  80.  
  81.     EITEM    APT_GetMaxPattern
  82.     EITEM    APT_GetMaxSample
  83.     EITEM    APT_GetSongLength
  84.     EITEM    APT_GetSongPos
  85.  
  86.     EITEM    APT_Rewind
  87.     EITEM    APT_Forward
  88.     EITEM    APT_ChangeChannel
  89.     EITEM    APT_TestNextLine
  90.  
  91.     EITEM    APT_GetSample        ;OBSOLETE
  92.     EITEM    APT_PlaySample        ;OBSOLETE
  93.     EITEM    APT_RealtimePlay
  94.  
  95.     EITEM    APT_CallBack
  96.  
  97. ; Tags From Version 2 (Released as 1.1)
  98.  
  99.     EITEM    APT_Flags
  100.  
  101. ; Tags From Version 3 (Released as 1.21)
  102.  
  103.     EITEM    APT_CfgWindow
  104.  
  105. ; Tags From Version 4 (Released as 1.30)
  106.  
  107.     EITEM    APT_NewConfig
  108.  
  109.     EITEM    APT_UsedChannels
  110.     EITEM    APT_SamplesType
  111.  
  112.     EITEM    APT_GetSampleInfo
  113.     EITEM    APT_NewPlaySample
  114.  
  115.     EITEM    APT_NotePlayer
  116.     EITEM    APT_DefaultPlayerInfo
  117.     EITEM    APT_NotePlayerInfo
  118.  
  119.     EITEM    APT_InitNotePlayer
  120.     EITEM    APT_EndNotePlayer
  121.     EITEM    APT_InitNotePlayerSound
  122.     EITEM    APT_EndNotePlayerSound
  123.     EITEM    APT_PlayNote
  124.  
  125. ; Tags From Version 5 (Released as 1.40)
  126.  
  127.     EITEM    APT_Show
  128.     EITEM    APT_ShowWindow
  129.  
  130.     EITEM    APT_AgentType
  131.     EITEM    APT_AgentHandler
  132.  
  133. ; Tags From Version 6 (Released as 2.00)
  134.  
  135.     EITEM    APT_ChanSignal
  136.  
  137.     EITEM    APT_TempoFunc
  138.  
  139.     EITEM    APT_OSVersion
  140. ;    EITEM    APT_VirtualChangeChannel;Not Used Yet
  141.  
  142. APT_NotePlayerName      =       APT_PlayerName
  143. APT_AgentName        =    APT_PlayerName
  144.  
  145. ;******************************************************************************
  146. ;* APT_Flags Flags
  147. ;******************************************************************************
  148.  
  149. AFB_AnyMem    =    0
  150. AFB_UseAudio    =    1
  151.  
  152. AF_AnyMem    =    1<<AFB_AnyMem
  153. AF_UseAudio    =    1<<AFB_UseAudio
  154.  
  155. ; Flags From Version 3 (Released as 1.21)
  156.  
  157. AFB_SongEnd    =    2
  158.  
  159. AF_SongEnd    =    1<<AFB_SongEnd
  160.  
  161. ; Flags From Version 6 (Released as 2.00)
  162.  
  163. AFB_Sample    =    3
  164.  
  165. AF_Sample    =    1<<AFB_Sample
  166.  
  167. ;******************************************************************************
  168. ;* APT_NotePlayerInfo & APT_NotePlayer Flags From Version 4 (Released as 1.30)
  169. ;******************************************************************************
  170.  
  171. ANFB_ChipMem        =    0    ;Only Used In APT_NotePlayerInfo
  172. ANFB_FastMem        =    1    ;Only Used In APT_NotePlayerInfo
  173. ANFB_HardwareVolume    =    2
  174. ANFB_Signed        =    3
  175. ANFB_Unsigned        =    4
  176. ANFB_Clock        =    5
  177.  
  178. ANF_ChipMem        =    1<<ANFB_ChipMem
  179. ANF_FastMem        =    1<<ANFB_FastMem
  180. ANF_HardwareVolume    =    1<<ANFB_HardwareVolume
  181. ANF_Signed        =    1<<ANFB_Signed
  182. ANF_Unsigned        =    1<<ANFB_Unsigned
  183. ANF_Clock        =    1<<ANFB_Clock
  184.  
  185. ;******************************************************************************
  186. ;* APT_SamplesType Types From Version 4 (Released as 1.30)
  187. ;******************************************************************************
  188.  
  189. ST_Signed        =    1
  190. ST_Unsigned        =    2
  191.  
  192. ;******************************************************************************
  193. ;* APT_AgentType Types From Version 5 (Released as 1.40)
  194. ;******************************************************************************
  195.  
  196. AGNT_SampleSaver    =    1
  197.  
  198. ; APT_AgentType Types From Version 6 (Released as 2.00)
  199.  
  200. AGNT_Scope        =    2
  201. AGNT_FSS        =    3    ;Private
  202.  
  203. ;******************************************************************************
  204. ;* Agent Data Structures
  205. ;******************************************************************************
  206.  
  207.     STRUCTURE AGSampleSaver,0
  208.     APTR    AGSS_SampleInfo        ;Pointer To A SampleInfo Structure
  209.     LABEL    AGSampleSaver_SIZEOF
  210.  
  211. ; Agent Data Structures From Version 6 (Released as 2.00)
  212.  
  213.     STRUCTURE AGFSS,0        ;Private
  214.     UWORD    AGFS_Action
  215.     ULONG    AGFS_Data1
  216.     ULONG    AGFS_Data2
  217.     ULONG    AGFS_Data3
  218.     ULONG    AGFS_Data4
  219.     LABEL    AGFSS_SIZEOF
  220.  
  221. FSA_Start    =    1        ;Initialize Agent
  222. FSA_End        =    2        ;Stop Agent
  223. FSA_Load    =    3        ;Load FSS File
  224. FSA_Save    =    4        ;Save FSS File
  225. FSA_Update    =    5        ;Update FSS List
  226.  
  227. ;******************************************************************************
  228. ;* Global Data Structure
  229. ;******************************************************************************
  230.  
  231.     STRUCTURE APlayerGlobal,0
  232.     ULONG    APG_FileSize
  233.     UWORD    APG_Tune
  234.     UWORD    APG_Reserved0
  235.     UBYTE    APG_MaxVolume
  236.     UBYTE    APG_Tempo
  237.  
  238.     FPTR    APG_CutPrefix        ;Private
  239.     FPTR    APG_LoadModule        ;Private
  240.     FPTR    APG_AddFile        ;Private
  241.     FPTR    APG_AllSleep        ;Private
  242.     FPTR    APG_AllUnsleep        ;Private
  243.     APTR    APG_ModList        ;Private
  244.     APTR    APG_LhaList        ;Private
  245.     APTR    APG_LhaNum        ;Private
  246.     APTR    APG_LzxList        ;Private
  247.     APTR    APG_LzxNum        ;Private
  248.  
  249.     FPTR    APG_AllocMem
  250.     FPTR    APG_FreeMem
  251.  
  252.     FPTR    APG_GetFilename
  253.     FPTR    APG_FindName
  254.  
  255.     FPTR    APG_CheckLoad
  256.     FPTR    APG_PartialLoad
  257.     FPTR    APG_Load
  258.  
  259.     FPTR    APG_DupOpen
  260.     FPTR    APG_DupClose
  261.     FPTR    APG_Seek
  262.  
  263.     FPTR    APG_PlaySample        ;OBSOLETE
  264.  
  265.     FPTR    APG_CalcVolume
  266.     FPTR    APG_WaitDMA
  267.     FPTR    APG_SendMsg
  268.     FPTR    APG_SetTimer
  269.  
  270.     FPTR    APG_NewProcess
  271.  
  272.     FPTR    APG_OpenWindow
  273.     FPTR    APG_WaitMsg
  274.     FPTR    APG_Reply
  275.     FPTR    APG_ActivateGadget
  276.     FPTR    APG_GetGadAdr
  277.     FPTR    APG_Flash
  278.  
  279.     FPTR    APG_AllocChannels
  280.     FPTR    APG_FreeChannels
  281.  
  282. ; Data/Functions From Version 2 (Released as 1.1)
  283.  
  284.     FPTR    APG_CutSuffix
  285.  
  286. ; Data/Functions From Version 3 (Released as 1.21)
  287.  
  288.     FPTR    APG_OpenFile
  289.     FPTR    APG_CloseFile
  290.     FPTR    APG_DirRequester
  291.     FPTR    APG_FileRequester
  292.     FPTR    APG_UpdateGadgets
  293.  
  294.     FPTR    APG_CalcTempo
  295.  
  296. ; Data/Functions From Version 4 (Released as 1.30)
  297.  
  298.     APTR    APG_IntBase        ;Intuition.library
  299.     APTR    APG_GfxBase        ;Graphics.library
  300.     APTR    APG_UtiBase        ;Utility.library
  301.     APTR    APG_ReqBase        ;Reqtools.library
  302.  
  303.     ULONG    APG_Clock
  304.     ULONG    APG_MixingRate
  305.  
  306.     APTR    APG_SampleInfo
  307.     APTR    APG_NullSample
  308.  
  309.     APTR    APG_ChannelInfo
  310.     FPTR    APG_NotePlayer
  311.  
  312.     FPTR    APG_NewPlaySample
  313.  
  314.     FPTR    APG_GetMaxVolume
  315.  
  316.     UWORD    APG_MaxChannels
  317.  
  318. ; Data/Functions From Version 5 (Released as 1.40)
  319.  
  320.     FPTR    APG_OpenShowWindow
  321.     FPTR    APG_CloseWindow
  322.     FPTR    APG_Sleep
  323.     FPTR    APG_Unsleep
  324.  
  325.     FPTR    APG_LVSetAttrs
  326.     FPTR    APG_LVGetAttrs
  327.     FPTR    APG_LVChangeColor
  328.  
  329.     FPTR    APG_CreateList
  330.     FPTR    APG_RemoveList
  331.     FPTR    APG_AddNode
  332.     FPTR    APG_DeleteNode
  333.     FPTR    APG_DeleteList
  334.     FPTR    APG_CopyList
  335.     FPTR    APG_ExchangeNodes
  336.     FPTR    APG_MoveToTop
  337.     FPTR    APG_MoveToBottom
  338.     FPTR    APG_FindNode
  339.     FPTR    APG_FindNodeNumber
  340.  
  341.     FPTR    APG_StringCompare
  342.  
  343. ; Data/Functions From Version 6 (Released as 2.00)
  344.  
  345.     FPTR    APG_GetScreenHd
  346.  
  347.     APTR    APG_GadBase        ;Gadtools.library
  348.  
  349.     FPTR    APG_GetMemType
  350.  
  351.     FPTR    APG_AllocScopeSignal
  352.     FPTR    APG_FreeScopeSignal
  353.     FPTR    APG_GetScopeSignal
  354.     FPTR    APG_TestScopeSignal
  355.     APTR    APG_ChannelFlags
  356.  
  357.     APTR    APG_ListFont
  358.     APTR    APG_GeneralFont
  359.  
  360.     BOOL    APG_LoopFlag
  361.  
  362.     FPTR    APG_DosError
  363.     FPTR    APG_ShowRequest
  364.     LABEL    APlayerGlobal_SIZEOF
  365.  
  366. ;******************************************************************************
  367. ;* Sample Info Structure From Version 4 (Released as 1.30)
  368. ;******************************************************************************
  369.  
  370.     STRUCTURE SampleInfo,0
  371.     UBYTE    SI_Type            ;See below for the types.
  372.     UBYTE    SI_Flags        ;See below for the flags.
  373.     APTR    SI_Name            ;This should be a pointer to a
  374.                     ;NULL-terminated string with the name
  375.                     ;of the sample here.
  376.     APTR    SI_Address        ;Set this to the start address of the
  377.                     ;sample. Zero means no sample.
  378.     LONG    SI_RealLength        ;Set this to the length of the sample
  379.                     ;in bytes.
  380.     LONG    SI_Length        ;This should be the length of the
  381.                     ;sample in 8 bits. That means if you
  382.                     ;have a 16 bit sample, this should be
  383.                     ;the half of the SI_RealLength size.
  384.     APTR    SI_LoopStart        ;Set this to the address where to loop
  385.                     ;from. If no loop, set this to the
  386.                     ;start address of the sample.
  387.     LONG    SI_LoopLength        ;This should indicate how many bytes
  388.                     ;of the sample to be looped. Zero
  389.                     ;means no loop.
  390.     UBYTE    SI_Volume        ;Set this to the volume of the sample.
  391.     UBYTE    SI_Finetune        ;This is a byte between -8 and +7.
  392.     UBYTE    SI_SampleBit        ;Set this to the bit size of the sample
  393.     UBYTE    SI_Pad
  394.     LABEL    SampleInfo_SIZEOF
  395.  
  396. ;******************************************************************************
  397. ;* SampleInfo Types From Version 4 (Released as 1.30)
  398. ;******************************************************************************
  399.  
  400. SIT_Sample        =    0
  401. SIT_AM            =    1
  402. SIT_FM            =    2
  403. SIT_Hybrid        =    3
  404. SIT_AdLib        =    4
  405.  
  406. ; SampleInfo Types From Version 5 (Released as 1.40)
  407.  
  408. SIT_WaveSynth        =    5
  409.  
  410. ;******************************************************************************
  411. ;* SampleInfo Flags From Version 4 (Released as 1.30)
  412. ;******************************************************************************
  413.  
  414. SIFB_Unsigned        =    0    ;Set this if the sample is unsigned.
  415.  
  416. SIF_Unsigned        =    1<<SIFB_Unsigned
  417.  
  418. ;******************************************************************************
  419. ;* NotePlayer Channel Structure From Version 4 (Released as 1.30)
  420. ;******************************************************************************
  421.  
  422.     STRUCTURE NPChannel,0
  423.     UBYTE    NPC_Flags
  424.     UBYTE    NPC_Bits        ;From Version 6 (Default 8)
  425.     APTR    NPC_Start
  426.     ULONG    NPC_Length
  427.     APTR    NPC_LoopStart
  428.     ULONG    NPC_LoopLength
  429.     UWORD    NPC_Period
  430.     UWORD    NPC_Volume
  431.     ULONG    NPC_Reserved1
  432.     ULONG    NPC_Reserved2
  433.     UWORD    NPC_Reserved3
  434.     LABEL    NPChannel_SIZEOF
  435.  
  436. ;******************************************************************************
  437. ;* NotePlayer Channel Flags From Version 4 (Released as 1.30)
  438. ;*
  439. ;* These bit will be set if the equal field in the NPChannel structure above
  440. ;* is valid.
  441. ;******************************************************************************
  442.  
  443. NPCFB_Sample        =    0
  444. NPCFB_Loop        =    1
  445. NPCFB_Period        =    2
  446. NPCFB_QuadroPeriod    =    3
  447. NPCFB_Volume        =    4
  448.  
  449. NPCF_Sample        =    1<<NPCFB_Sample
  450. NPCF_Loop        =    1<<NPCFB_Loop
  451. NPCF_Period        =    1<<NPCFB_Period
  452. NPCF_QuadroPeriod    =    1<<NPCFB_QuadroPeriod
  453. NPCF_Volume        =    1<<NPCFB_Volume
  454.  
  455. ; NotePlayer Channel Flags From Version 5 (Released as 1.40)
  456.  
  457. NPCFB_WordLength    =    5
  458.  
  459. NPCF_WordLength        =    1<<NPCFB_WordLength
  460.  
  461. ;******************************************************************************
  462. ;* Config Structure From Version 4 (Released as 1.30)
  463. ;******************************************************************************
  464.  
  465.     STRUCTURE ConfigStruct,0
  466.     FPTR    CS_GadUpdate        ;Pointer to a function that will fill
  467.                     ;out a tag list with the new values.
  468.                     ;It should return a pointer to the tag
  469.                     ;lists in A0.
  470.     FPTR    CS_Exit            ;Pointer to a Exit function.
  471.     UWORD    CS_Width        ;Window Width.
  472.     UWORD    CS_Height        ;Window Height.
  473.     APTR    CS_Title        ;Pointer To Window Title.
  474.     ULONG    CS_IDCMP        ;Extra IDCMPs. These IDCMPs will
  475.                     ;always be set: GADGETUP, GADGETDOWN,
  476.                     ;VANILLAKEY, MENUPICK and REFRESHWINDOW
  477.     APTR    CS_PrefName        ;Pointer to a preference filename
  478.                     ;with only the "Player" or "NotePlayer"
  479.                     ;path.
  480.     APTR    CS_PrefData        ;Pointer to your preference data.
  481.     APTR    CS_DefPrefData        ;Pointer to your default pref. data.
  482.     ULONG    CS_PrefSize        ;Number of bytes in your preferences.
  483.  
  484.     UWORD    CS_GadgetNum        ;Number of gadgets you want - 1.
  485.                     ;Then the Gadget Structure if any
  486.                     ;gadgets. See macro below.
  487.  
  488.     UWORD    CS_BevelNum        ;Number of bevel boxes you want - 1.
  489.                     ;Then the Bevel Box Structure if any
  490.                     ;boxes. See macro below.
  491.  
  492.     BOOL    CS_Text            ;Text strings boolean. Set this if you
  493.                     ;want some text else clear it.
  494.                     ;Then the normal IntuiText structures
  495.                     ;linked together.
  496.  
  497. ;******************************************************************************
  498. ;* Show Window Structure From Version 5 (Released as 1.40)
  499. ;******************************************************************************
  500.  
  501.     STRUCTURE ShowStruct,0
  502.     FPTR    SS_GadUpdate        ;Pointer to a function that will fill
  503.                     ;out a tag list with the new values.
  504.                     ;It should return a pointer to the tag
  505.                     ;lists in A0.
  506.     FPTR    SS_Exit            ;Pointer to a Exit function.
  507.     UWORD    SS_Width        ;Window Width.
  508.     UWORD    SS_Height        ;Window Height.
  509.     APTR    SS_Title        ;Pointer To Window Title.
  510.     ULONG    SS_IDCMP        ;Extra IDCMPs. These IDCMPs will
  511.                     ;always be set: CLOSEWINDOW, GADGETUP
  512.                     ;REFRESHWINDOW and VANILLAKEY.
  513.  
  514.     UWORD    SS_GadgetNum        ;Number of gadgets you want - 1.
  515.                     ;Then the Gadget Structure if any
  516.                     ;gadgets. See macro below.
  517.  
  518.     BOOL    SS_Menu            ;Menu boolean. Set this if you want
  519.                     ;a menu else clear it. This is not
  520.                     ;implemented yet, but for future
  521.                     ;compatible, clear it.
  522.  
  523.     UWORD    SS_BevelNum        ;Number of bevel boxes you want - 1.
  524.                     ;Then the Bevel Box Structure if any
  525.                     ;boxes. See macro below.
  526.  
  527.     BOOL    SS_Text            ;Text strings boolean. Set this if you
  528.                     ;want some text else clear it.
  529.                     ;Then the normal IntuiText structures
  530.                     ;linked together.
  531.  
  532. ;******************************************************************************
  533. ;* This Macro helps you to make Gadgets in your config window
  534. ;******************************************************************************
  535.  
  536. GADSTR    MACRO
  537.     dc.w    \2,\3,\4,\5,\6        ;X, Y, Width, Height, ID
  538.     dc.l    \7,\8,\9        ;Flags, Text, Tags
  539.     dc.w    \1            ;Kind
  540.     ENDM
  541.  
  542. ;******************************************************************************
  543. ;* This Macro helps you to make Bevel Boxes in your config window
  544. ;******************************************************************************
  545.  
  546. BEVSTR    MACRO
  547.     dc.w    \1,\2,\3,\4        ;X, Y, Width, Height
  548.     dc.w    \5            ;Normal (FALSE) Or Recessed (TRUE)
  549.     ENDM
  550.  
  551. ;******************************************************************************
  552. ;* Special Gadget Kinds From Version 3 (Released as 1.21)
  553. ;******************************************************************************
  554.  
  555. DISK_KIND    =    800        ;Will Make A Disk Gadget
  556. UPARROW_KIND    =    801        ;Up Arrow Image Button
  557. DOWNARROW_KIND    =    802        ;Down Arrow Image Button
  558.  
  559. ; Special Gadget Kinds From Version 5 (Released as 1.40)
  560.  
  561. NEWLISTVIEW_KIND=    700        ;Kickstart 3.0 Look ListViews
  562.  
  563. ;******************************************************************************
  564. ;* NEWLISTVIEW_KIND Tags From Version 5 (Released as 1.40)
  565. ;******************************************************************************
  566. ; C=Create
  567. ; S=Set
  568. ; G=Get
  569.  
  570. NLV_TagBase    =    $80000000+"NLV"
  571.  
  572.     ENUM    NLV_TagBase
  573.  
  574.     EITEM    NLV_Labels        ;CS
  575.     EITEM    NLV_Top            ;CS
  576.     EITEM    NLV_Selected        ;CSG
  577.     EITEM    NLV_SelectTwice        ;C
  578.     EITEM    NLV_CursorKeys        ;C
  579.     EITEM    NLV_ScrollWidth        ;C
  580.     EITEM    NLV_Tabs        ;C
  581.     EITEM    NLV_Font        ;C
  582.     EITEM    NLV_Function        ;C
  583.     EITEM    NLV_MoveTop        ;S
  584.  
  585. ; NEWLISTVIEW_KIND Tags From Version 6 (Released as 2.00)
  586.  
  587.     EITEM    NLV_ReadOnly        ;C
  588.  
  589.     ENDC
  590.